1. Field of the Invention
The present invention relates to graphical user interfaces for computer systems. More particularly, the present invention relates to a method and an apparatus for viewing a group of objects on a graphical display.
2. Related Art
One of the scarcest resources in today's computing devices is screen space. Even though the processing power and storage capacity of computing devices has increased by several orders of magnitude during the past twenty years, the average computer screen size has barely doubled. Although the resolution, clarity, and the overall quality of the displays has improved substantially, the actual size of the work area remains relatively limited. Screen space limitations are particularly apparent in the emerging pocket-sized computing devices and personal organizers, such as the palm connected organizer produced by the 3COM Corporation of Sunnyvale, Calif. These pocket-sized computing devices often have display sizes that are less than a few hundred or a few thousand square pixels.
At present, the most commonly used user interface paradigm for computing devices is the windows-icons-desktop-folders metaphor prevalent on computers such as the Macintosh, or personal computers running the Microsoft Windows operating system. Under this paradigm, the screen of a computer system simulates an office desktop that contains various objects. These objects are represented as graphical "icons" that can be opened as "windows" on the screen. Under this paradigm, a user can create an unlimited number of overlapping windows, and the size of these windows can be adjusted dynamically. The user can also hierarchically create and manipulate "folders" that reflect how the information is organized on the computer system's storage devices.
One of the main problems of the traditional windows-icons-desktop-folders metaphor is that it does not work well for large amounts of information because finding and organizing large numbers of windows and objects becomes very tedious. Also, the use of multiple windows is not feasible in computing devices with limited screen area.
In order to accommodate large amounts of data, some researchers have proposed using an "unlimited" desktop. (For example, see the Kansas user interface of the Self 4.0 programming environment described in "Supporting Flexible Roles in a Shared Space," Smith, et al., Computer Supported Collaborative Work '98 Conference Proceedings, Seattle Wash. Nov. 14-18, 1995). This type of user interface can be used to store and manipulate a virtually unlimited number of objects without the use of multiple windows. Objects in different parts of the unlimited space can be viewed using panning functions to navigate up/down and left/right through the unlimited space.
Unfortunately, experience has shown that navigating through a large two-dimensional space is not always easy. Locating a particular object may require a user to exhaustively pan and zoom through the space. To facilitate finding objects, additional tools (such as "radar" views) may be needed to help the user. However, the use of such tools may not be practical in small computing devices with limited screen size.
Some user interfaces have tried to break away from the limitations of flat, two-dimensional displays through the use of zooming and three-dimensional graphics. For instance, the Pad++ environment allows the user to "push" and "pull" objects farther and closer by using the zooming operations in conjunction with the conventional panning operations. (See "Pad++: A Zooming Graphical User Interface for Exploring Alternate Interface Physics," Bederson, et al., User Interface and Software Technology Conference Proceedings, pp. 17-26. Marina Del Rey, Nov. 2-4, 1994.) Unfortunately, this paradigm tends to make user interfaces complicated, because current pointing devices such as the mouse do not readily support object manipulation in three dimensions. Furthermore, most small computing devices do not have the necessary graphics support (e.g., text font scaling operations) or do not have adequate computing power to support the computationally demanding zooming and three-dimensional graphics operations.